<?php
	// Klass för att generera HTML formulär och hantering av användarens indata.
	class RegistrationView{
		// Input-variabler.
		private $reg_username = 'reg_username';
		private $reg_password = 'reg_password';
		private $reg_confirm = 'reg_confirm';
		private $reg_email = 'reg_email';
		private $reg_bday = 'reg_bday';
		private $reg_sex = 'reg_sex';
		private $reg_captcha = 'reg_captcha';
		private $reg_insert = 'reg_insert';
		// Switch-värden för GetMessage().
		const REG_NO_MESSAGE = "";
		const REG_USER_EXISTS = 1;
		const REG_USER_WRONG_INPUT = 2;
		const REG_PASS_WRONG_INPUT = 3;
		const REG_NO_MATCH = 4;
		const REG_MAIL_WRONG_INPUT = 5;
		const REG_BDAY_WRONG_INPUT = 6;
		const REG_SEX_WRONG_INPUT = 7;
		const REG_CAP_WRONG_INPUT = 8;
		// Funktion för att skriva ut Registrerings-formulär.
		public function DoRegistrationBox($reg_message){		
			return "
				<p class='capmessage'>Det sker ingen validering på Captcha än, så den kan du hoppa över.</p>
				<aside class='register'>			
					<form id='register' method='post' accept-charset='UTF-8'>
					<fieldset>
					<label class='reglabel'><span>Användarnamn:</span>
					<input type='text' name='$this->reg_username' value='".$this->GetRegUserName()."'/>
					</label>
					<label class='reglabel'><span>Lösenord:</span>
					<input type='password' name='$this->reg_password' value='".$this->GetRegPassword()."'/>
					</label>
					<label class='reglabel'><span>Bekräfta lösenord:</span>
					<input type='password' name='$this->reg_confirm' value='".$this->GetRegConfirm()."'/>
					</label>
					<label class='reglabel'><span>E-post:</span>
					<input type='text' name='$this->reg_email' value='".$this->GetRegMail()."'/>
					</label>
					<label class='reglabel'><span>Födelsedag:</span>
					<input type='text' name='$this->reg_bday' value='".$this->GetRegBday()."'/>
					</label>
					<label class='reglabel'><span>Kön:</span>
					<select name='$this->reg_sex' value='".$this->GetRegSex()."'>
						<option value=''>Välj...</option>
						<option value='1'>Man</option>
						<option value='2'>Kvinna</option>
					</select>
					</label>
					<img src='Captcha/Captcha.php' class='captcha'>
					<label class='reglabel'>
					<span>Bekräfta kod:</span>
					<input type='text' name='$this->reg_captcha'/>
					</label>
					<input type='submit' name='$this->reg_insert' value='Registrera dig' class='regbutton'/>
					</fieldset>
					</form>
				</aside>
				$reg_message
			";
		}
		public function DoRegistrationSuccess(){
			return "
				<div class='regwelcome'>
					<p>Du är nu registrerad, logga in med ditt nya användarnamn och lösenord!</p>
				</div>
			";
		}	
		// Funktion för att returnera användarens inmatning i Användarnamn: fältet.
		public function GetRegUserName(){
			if (isset($_POST[$this->reg_username])){
				return $_POST[$this->reg_username];
			}
		}
	  	// Funktion för att returnera användarens inmatning i Lösenord: fältet.
		public function GetRegPassword(){
			if (isset($_POST[$this->reg_password])){
				return $_POST[$this->reg_password];
			}
		}
		// Funktion för att returnera användarens inmatning i Bekräfta: fältet.
		public function GetRegConfirm(){
			if (isset($_POST[$this->reg_confirm])){
				return $_POST[$this->reg_confirm];
			}
		}
		// Funktion för att returnera användarens inmatning i E-post: fältet.
		public function GetRegMail(){
			if (isset($_POST[$this->reg_email])){
				return $_POST[$this->reg_email];
			}
		}
		// Funktion för att returnera användarens inmatning i Födelsedag: fältet.
		public function GetRegBday(){
			if (isset($_POST[$this->reg_bday])){
				return $_POST[$this->reg_bday];
			}
		}
		// Funktion för att returnera användarens inmatning i Kön: fältet.
		public function GetRegSex(){
			if (isset($_POST[$this->reg_sex])){
				return $_POST[$this->reg_sex];
			}
		}
		// Funktion för att returnera användarens inmatning i Captcha: fältet.
		public function GetRegCaptcha(){
			if (isset($_POST[$this->reg_captcha])){
				return $_POST[$this->reg_captcha];
			}
		}
	  	// Funktion för att kontrollera om användaren har klickat på Register-knappen eller inte.
		public function TriedToInsert(){
		    if (isset($_POST[$this->reg_insert])){
				return true;
			}
			return false;
		}
		// Funktion för att hantera meddelanden i Registrerings-formuläret.
		public function GetMessage($status){
			switch ($status){
				case self::REG_USER_EXISTS:
					$reg_message = "<p class='regmessage'>Användarnamnet är upptaget, välj ett annat!</p>";
					break;
				case self::REG_USER_WRONG_INPUT:
					$reg_message = "<p class='regmessage'>Användarnamns-fältet får ej vara tomt och måste innehålla 6-20 tecken!</p>";
					break;
				case self::REG_PASS_WRONG_INPUT:
					$reg_message = "<p class='regmessage'>Lösenords-fältet får ej vara tomt, måste innehålla 6-12 tecken och minnst 1 siffra!</p>";
					break;
				case self::REG_NO_MATCH:
					$reg_message = "<p class='regmessage'>Lösenordet stämmer inte överens med bekräftelsen!</p>";
					break;
				case self::REG_MAIL_WRONG_INPUT:
					$reg_message = "<p class='regmessage'>Epost-fältet får ej vara tomt och måste följa formatet: din@epost.se!</p>";
					break;
				case self::REG_BDAY_WRONG_INPUT:
					$reg_message = "<p class='regmessage'>Födelsedags-fältet får ej vara tomt och måste följa formatet: ÅÅÅÅMMDD!</p>";
					break;
				case self::REG_SEX_WRONG_INPUT:
					$reg_message = "<p class='regmessage'>Du har glömt att välja kön!</p>";
					break;
				case self::REG_CAP_WRONG_INPUT:
					$reg_message = "<p class='regmessage'>Koden matchar inte den på bilden!</p>";
					break;
				default:			
					break;
			}
			return $reg_message;
		}
	}
?>